n, changes = map(int, input().split())
incomes = sorted(list(map(int, input().split())))
diff = 0
i = 0
while i < len(incomes) and incomes[i] <= 0 and changes > 0 :
diff += (incomes[i] * -2)
changes -= 1
i += 1
if changes % 2 == 1:
diff -= abs(sorted(incomes, key=lambda l: abs(l))[0]) * 2
print(sum(incomes) + diff)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{ios_base::sync_with_stdio(false);
cin.tie(NULL);
int x,m;
cin>>x>>m;
int arr[x];
for(int i=0;i<x;i++){
cin>>arr[i];
}
int count=0;
ll sum=0;
bool flag=0,cn;
sort(arr,arr+x);
int mx=1e9,idx;
for(int i=0;i<x;i++){
if(arr[i]<0&&count!=m){
arr[i]*=-1;
count++;
}
if(mx>arr[i]){
mx=arr[i];
idx=i;
//cout<<idx;
}
//cout<<arr[i]<<" ";
}
if((m-count)%2){
arr[idx]*=-1;
}
for(int i=0;i<x;i++){
sum+=arr[i];
}
cout<<sum;
}
1669D - Colorful Stamp | 1669B - Triple |
1669A - Division | 1669H - Maximal AND |
1669E - 2-Letter Strings | 483A - Counterexample |
3C - Tic-tac-toe | 1669F - Eating Candies |
1323B - Count Subrectangles | 991C - Candies |
1463A - Dungeon | 1671D - Insert a Progression |
1671A - String Building | 1671B - Consecutive Points Segment |
1671C - Dolce Vita | 1669G - Fall Down |
4D - Mysterious Present | 1316B - String Modification |
1204A - BowWow and the Timetable | 508B - Anton and currency you all know |
1672A - Log Chopping | 300A - Array |
48D - Permutations | 677C - Vanya and Label |
1583B - Omkar and Heavenly Tree | 1703C - Cypher |
1511C - Yet Another Card Deck | 1698A - XOR Mixup |
1702E - Split Into Two Sets | 1703B - ICPC Balloons |